package com.boarsoft.boar.batch.biz;

import com.boarsoft.boar.batch.entity.BatchExecution;
import com.boarsoft.boar.batch.entity.BatchReport;

import java.util.List;

/**
 * @Description:
 * @Author: 刘超
 * @Date: 2023-06-29 15:33
 */
public interface BatchReportBiz {

	/**
	 * 保存执行报告
	 *
	 * @param executionReport
	 * @return
	 */
	String save(BatchReport executionReport);

	/**
	 * 上报子任务时，同时将记录写入 BatchExecution表
	 *
	 * @param batchId
	 * @param progress
	 * @param phrase
	 * @param addr
	 * @param index
	 * @return
	 */
	String saveReportAndExecution(String batchId, String progress, String phrase, String addr, String index);

	/**
	 * 上报子任务时，同时将记录写入 BatchExecution表
	 *
	 * @param batchId
	 * @param dealCount
	 * @param phrase
	 * @param addr
	 * @param index
	 * @return
	 */
	String registSubProgress(String batchId, int dealCount, String phrase, String addr, String index);

	/**
	 * 处理直接上报
	 * @param batchId
	 * @param progress
	 * @param phrase
	 * @param addr
	 * @return
	 */
	List<BatchExecution> saveAndUpdate(String batchId, String progress, String phrase, String addr);

	/**
	 * 处理直接上报（带异常标识字段）
	 * @param batchId
	 * @param progress
	 * @param phrase
	 * @param addr
	 * @return
	 */
	List<BatchExecution> saveAndUpdate(String batchId, String progress, String phrase, String addr, Object errMsg);

	/**
	 * 执行子任务前概要上报
	 * @param batchId
	 * @param phrase
	 * @param addr
	 * @param childern
	 * @param childDataVol
	 * @param percent
	 * @return
	 */
	String saveAndUpdatereport(String batchId, String phrase, String addr, int childern, int childDataVol, int percent);

	/**
	 * 根据兄弟节点的状态逐级递归更新父节点状态
	 *
	 * @param be
	 */
	List<BatchExecution> updateParentStsRecursion(BatchExecution be);

	//测试预留
	String report1(String [] args);
	String report2(String [] args);
	String report3(String [] args);
	String report4(String [] args);
}
